import NProgress from "nprogress";
import ElementUI from "element-ui";
import defaultLang from "./lang/zh-CN.js";
import EleAvatarList from "./ele-avatar-list";
export { default as EleAvatarList } from "./ele-avatar-list";
import EleBasicSelect from "./ele-basic-select";
export { default as EleBasicSelect } from "./ele-basic-select";
import EleDot from "./ele-dot";
export { default as EleDot } from "./ele-dot";
import EleEmpty from "./ele-empty";
export { default as EleEmpty } from "./ele-empty";
export { default as EleException } from "./ele-exception";
export { default as EleFileList } from "./ele-file-list";
export { default as EleFileListTool } from "./ele-file-list-tool";
export { default as EleIconPicker } from "./ele-icon-picker";
import EleModal from "./ele-modal";
export { default as EleModal } from "./ele-modal";
import EleProLayout from "./ele-pro-layout";
export { default as EleProLayout } from "./ele-pro-layout";
import EleProTable from "./ele-pro-table";
export { default as EleProTable } from "./ele-pro-table";
import EleResult from "./ele-result";
export { default as EleResult } from "./ele-result";
import EleTableDraggable from "./ele-table-draggable";
export { default as EleTableDraggable } from "./ele-table-draggable";
import EleTableSelect from "./ele-table-select";
export { default as EleTableSelect } from "./ele-table-select";
import EleTagsInput from "./ele-tags-input";
export { default as EleTagsInput } from "./ele-tags-input";
import EleToolItem from "./ele-tool-item";
export { default as EleToolItem } from "./ele-tool-item";
import EleToolbar from "./ele-toolbar";
export { default as EleToolbar } from "./ele-toolbar";
import EleTreeSelect from "./ele-tree-select";
export { default as EleTreeSelect } from "./ele-tree-select";
import { digit, toDateString, timeAgo, toTreeData, eachTreeData, formatTreeData, uuid, random, formatNumber, escape, htmlToText, deepClone, assignObject, isExternalLink, bd09ToGcj02, gcj02ToBd09, play, device, countdown, toggleFullscreen, isFullscreen, screenWidth, screenHeight, contentWidth, contentHeight, exportSheet, combineArrays } from "./utils/core";
export { assignObject, bd09ToGcj02, combineArrays, contentHeight, contentWidth, countdown, deepClone, device, digit, eachTreeData, escape, exportSheet, formatNumber, formatTreeData, gcj02ToBd09, htmlToText, isExternalLink, isFullscreen, play, random, screenHeight, screenWidth, timeAgo, toDateString, toTreeData, toggleFullscreen, uuid } from "./utils/core";
import { messageLoading } from "./utils/message-loading";
export { messageLoading } from "./utils/message-loading";
import { setLicense, checkLicense } from "./utils/license";
export { setLicense } from "./utils/license";
export * from "./utils/chart-theme";
export * from "./utils/menu-util";
export * from "./utils/printer";
export * from "./utils/theme-util";
export * from "./utils/validate";
export * from "./utils/word-cloud-color";
const installer = {
  install: function(Vue, opt) {
    if (opt == null ? void 0 : opt.license) {
      setLicense(opt.license);
    }
    checkLicense();
    Vue.component(EleAvatarList.name, EleAvatarList);
    Vue.component(EleBasicSelect.name, EleBasicSelect);
    Vue.component(EleDot.name, EleDot);
    Vue.component(EleEmpty.name, EleEmpty);
    Vue.component(EleModal.name, EleModal);
    Vue.component(EleProLayout.name, EleProLayout);
    Vue.component(EleProTable.name, EleProTable);
    Vue.component(EleResult.name, EleResult);
    Vue.component(EleTableDraggable.name, EleTableDraggable);
    Vue.component(EleTableSelect.name, EleTableSelect);
    Vue.component(EleTagsInput.name, EleTagsInput);
    Vue.component(EleToolItem.name, EleToolItem);
    Vue.component(EleToolbar.name, EleToolbar);
    Vue.component(EleTreeSelect.name, EleTreeSelect);
    Vue.component("ElTableDraggable", EleTableDraggable);
    Vue.prototype.$util = {
      digit,
      toDateString,
      timeAgo,
      toTreeData,
      eachTreeData,
      formatTreeData,
      uuid,
      random,
      formatNumber,
      escape,
      htmlToText,
      deepClone,
      assignObject,
      isExternalLink,
      bd09ToGcj02,
      gcj02ToBd09,
      play,
      device,
      countdown,
      toggleFullscreen,
      isFullscreen,
      screenWidth,
      screenHeight,
      contentWidth,
      contentHeight,
      exportSheet,
      combineArrays
    };
    Vue.prototype.$messageLoading = messageLoading;
    Vue.prototype.$ELEADMIN = {
      request: opt == null ? void 0 : opt.request,
      response: opt == null ? void 0 : opt.response,
      mapKey: opt == null ? void 0 : opt.mapKey
    };
    Vue.filter("escape", (value) => escape(value));
    Vue.filter("htmlToText", (value) => htmlToText(value));
    Vue.filter("digit", (value, length) => digit(value, length));
    Vue.filter("timeAgo", (value, onlyDate) => timeAgo(value, onlyDate));
    Vue.filter("toDateString", (value, format) => toDateString(value, format));
    NProgress.configure(Object.assign({
      speed: 200,
      minimum: 0.08,
      trickleRate: 0.1,
      trickleSpeed: 100,
      showSpinner: false
    }, opt == null ? void 0 : opt.nProgress));
    Vue.use(ElementUI, Object.assign({
      size: "medium",
      locale: defaultLang
    }, opt));
  }
};
export { installer as default };
